#include<stdio.h>
#include<unistd.h>
#include<signal.h>

void sigcb(int no){
    printf("recv no:%d\n",no);
}
int main(){
    signal(2,sigcb);//向操作系统注册信号处理(2号信号处理时调用sigcb函数)
    signal(40,sigcb);
    
    sigset_t set;//设置阻塞集合

    sigemptyset(&set);//清空集合
    //sigaddset(&set,2);//将指定信号添加到集合中
    //sigaddset(&set,40);
    sigfillset(&set);//将所有信号添加到集合中

    sigprocmask(SIG_BLOCK,&set,NULL);//将set集合中的信号添加到内核阻塞集合中
    getchar();
    sigprocmask(SIG_UNBLOCK,&set,NULL);//解除阻塞

    while(1){
        sleep(1);
    }
    return 0;
}
